Return Err if target don't support dylib (fix #2427)
authorJesús Espino <jespinog@gmail.com>
Fri, 4 Mar 2016 07:45:26 +0000 (08:45 +0100)
committerJesús Espino <jespinog@gmail.com>
Fri, 4 Mar 2016 22:23:48 +0000 (23:23 +0100)
src/cargo/ops/cargo_rustc/context.rs

index 8d88ac384cc3448eaab138fef26348acdaa02b49..f689998ad008e7c903c38e99d6ddd177a2b8b742 100644 (file)
@@ -317,8 +317,10 @@ impl<'a, 'cfg> Context<'a, 'cfg> {
                 for lib in libs.iter() {
                     match *lib {
                         LibKind::Dylib => {
-                            if let Ok((prefix, suffix)) = self.dylib(unit.kind) {
-                                ret.push(format!("{}{}{}", prefix, stem, suffix));
+                            match self.dylib(unit.kind) {
+                                Ok((prefix, suffix)) =>
+                                    ret.push(format!("{}{}{}", prefix, stem, suffix)),
+                                Err(e) => try!(self.config.shell().warn(format!("{}", e)))
                             }
                         }
                         LibKind::Lib |
@@ -332,7 +334,9 @@ impl<'a, 'cfg> Context<'a, 'cfg> {
                 }
             }
         }
-        assert!(!ret.is_empty());
+        if ret.is_empty() {
+            bail!("no valid targets found")
+        }
         Ok(ret)
     }